package db;

import interfazeak.Barietatea;
import interfazeak.Mahastiak_Lekuak;
import interfazeak.upeletanSartu;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import java.util.Vector;

import javax.swing.JComboBox;
import javax.swing.JTextField;

import laguntzaileak.BarietateKop;
import laguntzaileak.Bezerolag;

public class UpelaKud {

	public static int lortuUpelarenEdukiera(int n) {
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k1 = " SELECT edukiera FROM Upela WHERE zenbakia = '" + n + "' ";
		ResultSet rs = dbk.execSQL(k1);
		int zenbakia = 0;
		try {
			if (rs.next()) {
				zenbakia = rs.getInt(1);

			}
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
		return zenbakia;
	}

	public static void kargatuComboBox(JComboBox combo) {

		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k1 = " SELECT zenbakia FROM Upela Where (Select count(*) From Upelatzea Where upelazenb =  zenbakia )=0 ";

		ResultSet rs = dbk.execSQL(k1);

		int zenbakia = 0;

		try {
			while (rs.next()) {
				zenbakia = rs.getInt(1);

				combo.addItem(zenbakia);

			}

		} catch (SQLException e) {

			e.printStackTrace();
		}

		combo.setSelectedIndex(-1);
	}

	public static void gorde(Vector<Integer> emaitza,
			Vector<BarietateKop> barietateenbektorea) {
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();

		int txakozenba = emaitza.elementAt(1);
		int litroak = emaitza.elementAt(2);
		int upela = emaitza.elementAt(0);
		
		
		int i = 1, id = 0, ehuneko = 0, y=1;

		while (barietateenbektorea.size() >= i) {
			id = barietateenbektorea.elementAt(i - 1).getBarietateID();
			ehuneko = barietateenbektorea.elementAt(i - 1).getEhunekoa();
			
			if (ehuneko != 0) {
			
				
					String k2 = "INSERT INTO Upelatzea(upelazenb, barietateid, txakolinazenb,  betetakolitroak, ehuneko) VALUES ('"

						+ upela
						+ "','"
						+ id
						+ "','"
						+ txakozenba
						+ "','"
						+ litroak + "','" + ehuneko +  "')";

				dbk.execSQL(k2);
					y=y+1;
				
			
				
			}
			i = i + 1;
		}

	}

	/*public static void hurrengoa(Vector<Integer> emaitza,
			Vector<BarietateKop> barietateenbektorea) {

		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		int txakozenba = emaitza.elementAt(1);
		int litroak = emaitza.elementAt(2);
		int upela = emaitza.elementAt(0);

		int i = 1, id = 0, ehuneko = 0;
		while (barietateenbektorea.size() >= i) {
			id = barietateenbektorea.elementAt(i - 1).getBarietateID();
			ehuneko = barietateenbektorea.elementAt(i - 1).getEhunekoa();
			if (ehuneko != 0) {
				String k2 = "INSERT INTO Upelatzea(upelazenb, barietateid, txakolinazenb,  betetakolitroak, ehuneko) VALUES ('"
						+ upela
						+ "','"
						+ id
						+ "','"
						+ txakozenba
						+ "','"
						+ litroak + "','" + ehuneko + "')";

				dbk.execSQL(k2);
			}
			i = i + 1;
		}

	}*/

	

	public static boolean txakolinazenbakia(Integer elementAt) {
		boolean ondo= true;
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k= "SELECT txakolinazenb FROM Upelatzea Where txakolinazenb='" + elementAt + "'";
		ResultSet rs = dbk.execSQL(k);
		int total = 0;
		try {
			while (rs.next()){
				total=total +1;
			}
			
			if (total!=0){
				ondo =false;
			}
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
		
		
		return ondo;
	}

	public static ResultSet bistaratuUpelak() {
		
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k = "SELECT * FROM Upelatzea ORDER BY upelazenb ASC";
		ResultSet rs = dbk.execSQL(k);
		return rs;
		
	}

	public static boolean upelabadago(int upela) {
		
		boolean emaitza=false;
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k = "SELECT * FROM Upelatzea WHERE upelazenb='" + upela + "'";
		

		ResultSet rs = dbk.execSQL(k);
		try {
			if(rs.next()){
				if (rs.getRow()>0){
				System.out.println(rs.getRow());
				emaitza=true;
				
			}
			}
			
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
		return emaitza;
	}

	public static void ezabatu(int i) {
		
		
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k = " DELETE FROM Upelatzea WHERE upelazenb='" + i + "'";
			dbk.execSQL(k);
		String k1 = " DELETE FROM Tratamendu WHERE upela='" + i + "'";
			dbk.execSQL(k1);
			
	}

	public static void txertatutratamendua(int upelaz, String idatzi,
			String eguna) {
		// upelaz-etaz lortuko dugu idUpelatzea. bakoitzeko txertatu Tratamenduan idUpelatzea, data,tratamendua
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
	
				String k = "INSERT INTO Tratamendu(upela,tratamendua,data) VALUES ('"

				+ upelaz + "','" + idatzi + "', (STR_TO_DATE('"+eguna+"','%d-%m-%Y')))";

				dbk.execSQL(k);
			
		
				
			
		
	}

	public static ResultSet lortuidUpelatzeak(int upelaz) {
		
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k = "SELECT * FROM Upelatzea WHERE upelazenb='" + upelaz + "'";
		ResultSet rs=dbk.execSQL(k);
		return rs;
	}


	public static ResultSet lortuupelarenTratamenduak(int upelaz) {
		
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k= "SELECT * FROM Tratamendu WHERE upela ='" + upelaz + "'";
		ResultSet rs = dbk.execSQL(k);
		return rs;
	}

	public static void aldatuupela(int upela, int upelaz) {
		
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k= " UPDATE Upelatzea SET upelazenb='" + upela + "' WHERE upelazenb ='" + upelaz + "'";
		dbk.execSQL(k);
	}

		/*ezabatutratamendua(upela);
		String k = "SELECT * FROM Upelatzea WHERE upelazenb ='" + upelaz + "'"; 
		ResultSet rs = dbk.execSQL(k);
		try {
			if (rs.next()){
				String trat = rs.getString("tratamendua");
				Date data = rs.getDate("data");
				int id = rs.getInt("idUpelatzea");
				String k1 = "INSERT INTO Tratamendu(upelatzea,tratamendua,data) VALUES ('"

				+ upela + "','" + trat + "','" + data + "')";

				dbk.execSQL(k1);
				
			}
		} catch (SQLException e) {
			
			e.printStackTrace();
		}*/
		

		
	//	String k1= " UPDATE  SET upelazenb='" + upela + "' WHERE upela ='" + upelaz + "'";

	

	

	

	public static void eguneratuUpela(int id, int l) {
				DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k= " UPDATE Upelatzea SET betetakolitroak='" + l + "' WHERE idUpelatzea ='" + id + "'";
		dbk.execSQL(k);
	}

	public static void ezabatuUpela(int id) {
				DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k = " DELETE FROM Upelatzea WHERE idUpelatzea='" + id + "'";
		dbk.execSQL(k);
	}

	public static int lortuid1Upelatzeak(int upelaz) {
				DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k= "SELECT * FROM Upelatzea WHERE upelazenb ='" + upelaz + "'";
		ResultSet rs = dbk.execSQL(k);
		int upela = 0;
		try {
			while (rs.next()){
				upela = rs.getInt("idUpelatzea");

			}
		} catch (SQLException e) {
						e.printStackTrace();
		}
		return upela;
	}

	

	public static ResultSet lortuUpelak() {
		
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k = "SELECT * FROM Upela ORDER BY zenbakia ASC ";
		ResultSet rs = dbk.execSQL(k);
		
		return rs;
	}

	public static void gehituUpela(int upela, int edukiera) {
				DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k1 = "INSERT INTO Upela(zenbakia,edukiera) VALUES ('"

				+ upela + "','"  + edukiera + "')";

		dbk.execSQL(k1);
		
	
	}

	public static void ezabatuUpelaKonf(int upela) {
				
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();

		String k = " DELETE FROM Upela WHERE zenbakia= '" + upela
					+ "' ";
			dbk.execSQL(k);
	}

	

	public static int badagoUpela(int upela) {
		int emaitza = 0;

		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k = "SELECT * FROM Upela WHERE zenbakia= '" + upela
				+ "' ";
		ResultSet rs = dbk.execSQL(k);
		try {
			if (rs.next()) {
				emaitza = rs.getRow();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return emaitza;
	}

	public static void eguneratuUpelatzea(int upelazenb, int l) {

		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		ResultSet rs = UpelaKud.lortuidUpelatzeak(upelazenb);
		try {
			while(rs.next()){
				int id = rs.getInt("idUpelatzea");
				int litroak = rs.getInt("betetakolitroak");
				if ((l-litroak)==0){
					ezabatuUpela(id);
				}
				else {
					int ken = litroak-l;
					eguneratuUpela(id,ken);
				}
			}
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
	}

	
	

	
}
